package com.dm.cloud.images.service;

import com.dm.cloud.images.common.po.ImagesAppArrange;
import com.dm.cloud.images.mode.AppArrangeModel;
import com.dm.cloud.images.mode.AppContainerModel;
import com.dm.cloud.images.mode.AppInfoModel;
import com.dm.cloud.tkmybatis.service.BaseEntityService;
import com.dm.cloud.images.common.request.ImagesAppArrangeSearchRequest;

import java.util.List;

/**
   * @author hcx
   * @type ImagesAppArrangeService.java
   * @desc ImagesAppArrange service
   */
public interface ImagesAppArrangeService extends BaseEntityService<ImagesAppArrangeSearchRequest,ImagesAppArrange> {


    boolean deleteByNodeIdAndImagesId(String containerId, String nodeId);

    /**
     * 应用基本信息
     * @param appCode
     * @return
     */
    AppInfoModel appInfo(String appCode);

    /**
     * 编排操作
     * @param arrangeModel
     * @return
     */
    AppArrangeModel arrange(AppArrangeModel arrangeModel);

    /**
     * 获取编排信息
     * @param appCode
     * @return
     */
    AppArrangeModel getArrange(String appCode);

    /**
     * 启动应用
     * @param appCode
     * @return
     */
    Boolean startApp(String appCode);

    /**
     *
     * @param appCode
     * @return
     */
    Boolean stopApp(String appCode);

    /**
     * 获取app下所有已编排的容器
     * @param appCode
     * @return
     */
    List<ImagesAppArrange> findByAppCode(String appCode);

    /**
     * 重启
     * @param appCode
     * @return
     */
    Boolean restartApp(String appCode);

    /**
     * 容器状态
     * @param appCode
     * @return
     */
    AppContainerModel containerStatus(String appCode);
}
